home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Libs / Identify / include / libraries / identify.h next >
Encoding:
C/C++ Source or Header  |  1997-12-02  |  15.0 KB  |  315 lines

  1. /*
  2. **      $VER: identify.i 8.1 (30.10.97)
  3. **
  4. **      identify.library definitions
  5. **
  6. **      (C) Copyright 1996-97 Richard Koerber
  7. **      All Rights Reserved.
  8. */
  9.  
  10. #ifndef LIBRARIES_IDENTIFY_H
  11. #define LIBRARIES_IDENTIFY_H    (1)
  12.  
  13. #ifndef EXEC_TYPES_H
  14. #include <exec/types.h>
  15. #endif
  16.  
  17. #ifndef EXEC_LIBRARIES_H
  18. #include <exec/libraries.h>
  19. #endif
  20.  
  21. #ifndef UTILITY_TAGITEM_H
  22. #include <utility/tagitem.h>
  23. #endif
  24.  
  25. #define _IDTAGS (0xCD450000)
  26.  
  27. /* ------------------------------------------------------------------------ *
  28. **  Generic library informations
  29. */
  30. #define IDENTIFYVERSION (8)
  31.  
  32. struct IdentifyBase {
  33.   struct  Library ifyb_LibNode;
  34. };
  35.  
  36. #define IDENTIFYBUFLEN  (50)            /*  default buffer length */
  37.  
  38. /* ------------------------------------------------------------------------ *
  39. **  Expansion() tags
  40. */
  41. #define IDTAG_ConfigDev   (_IDTAGS+0x00)  /* (struct ConfigDev *) ConfigDev */
  42.                                           /*  structure to be evaluated */
  43. #define IDTAG_ManufID     (_IDTAGS+0x01)  /* UWORD manufacturer ID if no */
  44.                                           /*  ConfigDev is available */
  45. #define IDTAG_ProdID      (_IDTAGS+0x02)  /* UBYTE product ID if no */
  46.                                           /*  ConfigDev is available */
  47. #define IDTAG_StrLength   (_IDTAGS+0x03)  /* UWORD of maximum buffer length, */
  48.                                           /*  including termination. Default */
  49.                                           /*  is 50. */
  50. #define IDTAG_ManufStr    (_IDTAGS+0x04)  /* STRPTR of manufacturer name */
  51.                                           /*  puffer, or NULL */
  52. #define IDTAG_ProdStr     (_IDTAGS+0x05)  /* STRPTR of product name */
  53.                                           /*  puffer, or NULL */
  54. #define IDTAG_ClassStr    (_IDTAGS+0x06)  /* STRPTR of product class */
  55.                                           /*  puffer, or NULL */
  56. #define IDTAG_DeadStr     (_IDTAGS+0x07)  /* STRPTR deadend or recoverable alert? */
  57. #define IDTAG_SubsysStr   (_IDTAGS+0x08)  /* STRPTR alert subsystem */
  58. #define IDTAG_GeneralStr  (_IDTAGS+0x09)  /* STRPTR alert general cause */
  59. #define IDTAG_SpecStr     (_IDTAGS+0x0A)  /* STRPTR alert specific cause */
  60. #define IDTAG_FuncNameStr (_IDTAGS+0x0B)  /* STRPTR function name */
  61. #define IDTAG_Expansion   (_IDTAGS+0x0C)  /* (struct ConfigDev **) for a */
  62.                                           /*  complete expansion check. Init */
  63.                                           /*  the variable with NULL. */
  64. #define IDTAG_Secondary   (_IDTAGS+0x0D)  /* BOOL warn for secondary expansion */
  65.                                           /*  boards (defaults to FALSE) */
  66. #define IDTAG_ClassID     (_IDTAGS+0x0E)  /* ULONG * class ID of the provided */
  67.                                           /*  expansion board (see below) [V8] */
  68. #define IDTAG_Localize    (_IDTAGS+0x0F)  /* BOOL return localized strings */
  69.                                           /*  (defaults to TRUE) [V8] */
  70. #define IDTAG_NULL4NA     (_IDTAGS+0x10)  /* BOOL return NULL for not available */
  71.                                           /*  else return a string (defaults to */
  72.                                           /*  FALSE) [V8] */
  73.  
  74. /* ------------------------------------------------------------------------ *
  75. **  Hardware description types
  76. */
  77. #define IDHW_SYSTEM       (0)     /*  System (Amiga,DraCo,...)            [V2] */
  78. #define IDHW_CPU          (1)     /*  CPU (68000,68010,...,68060) */
  79. #define IDHW_FPU          (2)     /*  FPU (---,68881,68882,68040,68060) */
  80. #define IDHW_MMU          (3)     /*  MMU (---,68852,68030,68040,68060) */
  81. #define IDHW_OSVER        (4)     /*  OS Version (V*.*) */
  82. #define IDHW_EXECVER      (5)     /*  Exec Version (V*.*) */
  83. #define IDHW_WBVER        (6)     /*  Workbench Version (---,V*.*) */
  84. #define IDHW_ROMSIZE      (7)     /*  OS ROM Size (*KB, *MB) */
  85. #define IDHW_CHIPSET      (8)     /*  Chipset (OCS,ECS,AGA,DraCo) */
  86. #define IDHW_GFXSYS       (9)     /*  Graphic OS (AmigaOS, CyberGraphX, ...) */
  87. #define IDHW_CHIPRAM      (10)    /*  All Chip RAM (*KB, *MB, *GB) */
  88. #define IDHW_FASTRAM      (11)    /*  All Fast RAM (*KB, *MB, *GB) */
  89. #define IDHW_RAM          (12)    /*  All Total RAM (*KB, *MB, *GB) */
  90. #define IDHW_SETPATCHVER  (13)    /*  SetPatch Version (---,V*.*)         [V4] */
  91. #define IDHW_AUDIOSYS     (14)    /*  Audio OS (AmigaOS, AHI, ...)        [V5] */
  92. #define IDHW_OSNR         (15)    /*  AmigaOS (2.04, 3.1, ...) */
  93. #define IDHW_VMMCHIPRAM   (16)    /*  VMM Chip RAM (*KB, *MB, *GB) */
  94. #define IDHW_VMMFASTRAM   (17)    /*  VMM Fast RAM (*KB, *MB, *GB) */
  95. #define IDHW_VMMRAM       (18)    /*  VMM Total RAM (*KB, *MB, *GB) */
  96. #define IDHW_PLNCHIPRAM   (19)    /*  Plain Chip RAM (*KB, *MB, *GB) */
  97. #define IDHW_PLNFASTRAM   (20)    /*  Plain Fast RAM (*KB, *MB, *GB) */
  98. #define IDHW_PLNRAM       (21)    /*  Plain Total RAM (*KB, *MB, *GB) */
  99. #define IDHW_VBR          (22)    /*  Vector Base Register                [V6] */
  100. #define IDHW_LASTALERT    (23)    /*  Last Alert code */
  101. #define IDHW_VBLANKFREQ   (24)    /*  VBlank Frequency */
  102. #define IDHW_POWERFREQ    (25)    /*  Power Frequency */
  103. #define IDHW_ECLOCK       (26)    /*  EClock */
  104. #define IDHW_SLOWRAM      (27)    /*  Plain Slow RAM (*KB, *MB, *GB) */
  105. #define IDHW_GARY         (28)    /*  Gary (---,Normal,...) */
  106. #define IDHW_RAMSEY       (29)    /*  RAMSEY (---,D,F) */
  107. #define IDHW_BATTCLOCK    (30)    /*  Battery Backed Up Clock (---,Found) */
  108. #define IDHW_CHUNKYPLANAR (31)    /*  Chunky To Planar Hardware (---,Found) [V7] */
  109. #define IDHW_POWERPC      (32)    /*  PowerPC present? (---,Found) */
  110. #define IDHW_PPCCLOCK     (33)    /*  PowerPC clock (unit MHz) */
  111. #define IDHW_CPUREV       (34)    /*  CPU revision                          [V8] */
  112. #define IDHW_CPUCLOCK     (35)    /*  CPU clock (unit MHz) */
  113. #define IDHW_FPUCLOCK     (36)    /*  FPU clock (unit MHz) */
  114. #define IDHW_RAMACCESS    (37)    /*  Main board RAM access time (unit ns) */
  115. #define IDHW_RAMWIDTH     (38)    /*  Main board RAM width (bit) */
  116. #define IDHW_RAMCAS       (39)    /*  Main board RAM CAS mode */
  117. #define IDHW_RAMBANDWIDTH (40)    /*  Main board RAM bandwidth */
  118. #define IDHW_NUMBEROF     (41)    /*  Number of types, PRIVATE! */
  119.  
  120. /* ------------------------------------------------------------------------ *
  121. **  IDHW_SYSTEM numerical result codes
  122. */
  123. #define IDSYS_AMIGA1000 (0)       /*  Amiga 1000 */
  124. #define IDSYS_AMIGAOCS  (1)       /*  OCS Amiga 500/2000 */
  125. #define IDSYS_AMIGAECS  (2)       /*  ECS Amiga 500/2000 */
  126. #define IDSYS_AMIGA500  (3)       /*  Amiga 500 */
  127. #define IDSYS_AMIGA2000 (4)       /*  Amiga 2000 */
  128. #define IDSYS_AMIGA3000 (5)       /*  Amiga 3000 */
  129. #define IDSYS_CDTV      (6)       /*  CDTV */
  130. #define IDSYS_AMIGA600  (7)       /*  Amiga 600 */
  131. #define IDSYS_CD32      (8)       /*  CD32 */
  132. #define IDSYS_AMIGA1200 (9)       /*  Amiga 1200 */
  133. #define IDSYS_AMIGA4000 (10)      /*  Amiga 4000 */
  134. #define IDSYS_DRACO     (11)      /*  DraCo */
  135. #define IDSYS_UAE       (12)      /*  Ubiquitous Amiga Emulator */
  136.  
  137. /* ------------------------------------------------------------------------ *
  138. **  IDHW_CPU numerical result codes
  139. */
  140. #define IDCPU_68000     (0)       /*  68000 */
  141. #define IDCPU_68010     (1)       /*  68010 */
  142. #define IDCPU_68020     (2)       /*  68020 */
  143. #define IDCPU_68030     (3)       /*  68030 */
  144. #define IDCPU_68EC030   (4)       /*  68EC030 (without MMU) */
  145. #define IDCPU_68040     (5)       /*  68040 */
  146. #define IDCPU_68LC040   (6)       /*  68LC040 (without FPU) */
  147. #define IDCPU_68060     (7)       /*  68060 */
  148. #define IDCPU_68LC060   (8)       /*  68LC060 (without FPU) */
  149.  
  150. /* ------------------------------------------------------------------------ *
  151. **  IDHW_FPU numerical result codes
  152. */
  153. #define IDFPU_NONE      (0)       /*  no FPU */
  154. #define IDFPU_68881     (1)       /*  68881 */
  155. #define IDFPU_68882     (2)       /*  68882 */
  156. #define IDFPU_68040     (3)       /*  68040 */
  157. #define IDFPU_68060     (4)       /*  68060 */
  158.  
  159. /* ------------------------------------------------------------------------ *
  160. **  IDHW_MMU numerical result codes
  161. */
  162. #define IDMMU_NONE      (0)       /*  no MMU */
  163. #define IDMMU_68851     (1)       /*  68851 */
  164. #define IDMMU_68030     (2)       /*  68030 */
  165. #define IDMMU_68040     (3)       /*  68040 */
  166. #define IDMMU_68060     (4)       /*  68060 */
  167.  
  168. /* ------------------------------------------------------------------------ *
  169. **  IDHW_OSNR numerical result codes
  170. */
  171. #define IDOS_UNKNOWN    (0)       /*  <V36 or >V40 */
  172. #define IDOS_2_0        (1)       /*  OS2.0  (V36) */
  173. #define IDOS_2_04       (2)       /*  OS2.04 (V37) */
  174. #define IDOS_2_1        (3)       /*  OS2.1  (V38) */
  175. #define IDOS_3_0        (4)       /*  OS3.0  (V39) */
  176. #define IDOS_3_1        (5)       /*  OS3.1  (V40) */
  177.  
  178. /* ------------------------------------------------------------------------ *
  179. **  IDHW_CHIPSET numerical result codes
  180. */
  181. #define IDCS_OCS        (0)       /*  OCS */
  182. #define IDCS_ECS        (1)       /*  ECS */
  183. #define IDCS_AGA        (2)       /*  AGA */
  184. #define IDCS_ALTAIS     (3)       /*  DraCo Altais */
  185.  
  186. /* ------------------------------------------------------------------------ *
  187. **  IDHW_GFXSYS numerical result codes
  188. */
  189. #define IDGOS_AMIGAOS   (0)       /*  Plain AmigaOS */
  190. #define IDGOS_EGS       (1)       /*  EGS */
  191. #define IDGOS_RETINA    (2)       /*  Retina */
  192. #define IDGOS_GRAFFITI  (3)       /*  Graffiti */
  193. #define IDGOS_TIGA      (4)       /*  TIGA */
  194. #define IDGOS_PROBENCH  (5)       /*  Merlin ProBench */
  195. #define IDGOS_PICASSO   (6)       /*  Picasso */
  196. #define IDGOS_CGX       (7)       /*  CyberGraphX */
  197. #define IDGOS_CGX3      (8)       /*  CyberGraphX 3D */
  198. #define IDGOS_PICASSO96 (9)       /*  Picasso96 */
  199.  
  200. /* ------------------------------------------------------------------------ *
  201. **  IDHW_AUDIOSYS numerical result codes
  202. */
  203. #define IDAOS_AMIGAOS    (0)      /*  Plain AmigaOS */
  204. #define IDAOS_MAESTIX    (1)      /*  MaestroPro driver */
  205. #define IDAOS_TOCCATA    (2)      /*  Toccata driver */
  206. #define IDAOS_PRELUDE    (3)      /*  Prelude driver */
  207. #define IDAOS_AHI        (4)      /*  AHI */
  208. #define IDAOS_MACROAUDIO (5)      /*  MacroAudio */
  209.  
  210. /* ------------------------------------------------------------------------ *
  211. **  IDHW_GARY numerical result codes
  212. */
  213. #define IDGRY_NONE      (0)       /*  No Gary available */
  214. #define IDGRY_NORMAL    (1)       /*  Normal Gary */
  215. #define IDGRY_ENHANCED  (2)       /*  Enhanced Gary */
  216.  
  217. /* ------------------------------------------------------------------------ *
  218. **  IDHW_RAMSEY numerical result codes
  219. */
  220. #define IDRSY_NONE      (0)       /*  No RamSey available */
  221. #define IDRSY_REVD      (1)       /*  RamSey Revision D */
  222. #define IDRSY_REVF      (2)       /*  RamSey Revision F */
  223.  
  224. /* ------------------------------------------------------------------------ *
  225. ** IDHW_POWERPC numerical result codes
  226. */
  227. #define IDPPC_NONE      (0)       /*  No PowerPC implemented */
  228. #define IDPPC_OTHER     (1)       /*  Another PowerPC */
  229. #define IDPPC_602       (2)       /*  602 */
  230. #define IDPPC_603       (3)       /*  603 */
  231. #define IDPPC_603E      (4)       /*  603e */
  232. #define IDPPC_603P      (5)       /*  603p */
  233. #define IDPPC_604       (6)       /*  604 */
  234. #define IDPPC_604E      (7)       /*  604e */
  235.  
  236. /* ------------------------------------------------------------------------ *
  237. ** IDHW_RAMCAS numerical result codes
  238. */
  239. #define IDCAS_NONE      (0)       /*  Not available */
  240. #define IDCAS_NORMAL    (1)       /*  Normal access */
  241. #define IDCAS_DOUBLE    (2)       /*  Double access */
  242.  
  243. /* ------------------------------------------------------------------------ *
  244. ** IDTAG_ClassID numerical result codes
  245. */
  246. #define IDCID_UNKNOWN   (0)     /*  unknown functionality */
  247. #define IDCID_MISC      (1)     /*  miscellaneous expansion */
  248. #define IDCID_TURBO     (2)     /*  accelerator */
  249. #define IDCID_TURBORAM  (3)     /*  accelerator RAM */
  250. #define IDCID_TURBOHD   (4)     /*  accelerator + some HD controller */
  251. #define IDCID_TURBOIDE  (5)     /*  accelerator + AT-IDE controller */
  252. #define IDCID_TURBOSCSIHD (6)   /*  accelerator + SCSI host adapter */
  253. #define IDCID_NET       (7)     /*  some network */
  254. #define IDCID_ARCNET    (8)     /*  ArcNet */
  255. #define IDCID_ETHERNET  (9)     /*  Ethernet */
  256. #define IDCID_AUDIO     (10)    /*  audio */
  257. #define IDCID_VIDEO     (11)    /*  video (video digitizer etc) */
  258. #define IDCID_MULTIMEDIA (12)   /*  multimedia (audio, video, etc) */
  259. #define IDCID_DSP       (13)    /*  multi purpose DSP */
  260. #define IDCID_BUSBRIDGE (14)    /*  ISA bus bridge */
  261. #define IDCID_BRIDGE    (15)    /*  PC bridge */
  262. #define IDCID_EMULATOR  (16)    /*  some Emulator hardware */
  263. #define IDCID_MACEMU    (17)    /*  Macintosh emulator hardware */
  264. #define IDCID_ATARIEMU  (18)    /*  Atari emulator hardware */
  265. #define IDCID_GFX       (19)    /*  graphics (register) */
  266. #define IDCID_GFXRAM    (20)    /*  graphics (video RAM) */
  267. #define IDCID_HD        (21)    /*  some HD controller */
  268. #define IDCID_HDRAM     (22)    /*  some HD controller + RAM */
  269. #define IDCID_IDEHD     (23)    /*  IDE controller */
  270. #define IDCID_IDEHDRAM  (24)    /*  IDE controller + RAM */
  271. #define IDCID_SCSIHD    (25)    /*  SCSI host adapter */
  272. #define IDCID_RAMSCSIHD (26)    /*  SCSI host adapter + RAM */
  273. #define IDCID_CDROM     (27)    /*  CD-ROM interface */
  274. #define IDCID_MODEM     (28)    /*  internal modem */
  275. #define IDCID_ISDN      (29)    /*  internal ISDN terminal adapter */
  276. #define IDCID_MULTIIO   (30)    /*  multi I/O (serial + parallel) */
  277. #define IDCID_SERIAL    (31)    /*  multi serial (no parallel) */
  278. #define IDCID_PARALLEL  (32)    /*  multi parallel (no serial) */
  279. #define IDCID_SCANIF    (33)    /*  scanner interface */
  280. #define IDCID_TABLET    (34)    /*  drawing tablet interface */
  281. #define IDCID_RAM       (35)    /*  plain RAM expansion */
  282. #define IDCID_FLASHROM  (36)    /*  Flash ROM */
  283. #define IDCID_SCSIIDE   (37)    /*  combined SCSI/IDE controller */
  284. #define IDCID_RAMFPU    (38)    /*  RAM expansion + FPU */
  285. #define IDCID_GUESS     (39)    /*  name was unknown but guessed */
  286. #define IDCID_KICKSTART (40)    /*  KickStart */
  287. #define IDCID_RAM32     (41)    /*  32bit RAM expansion */
  288. #define IDCID_TURBOANDRAM (42)  /*  accelerator + RAM expansion */
  289. #define IDCID_ACCESS    (43)    /*  access control */
  290. #define IDCID_INTERFACE (44)    /*  some interface */
  291. #define IDCID_MFMHD     (45)    /*  MFM HD controller */
  292. #define IDCID_FLOPPY    (46)    /*  floppy disk controller */
  293.     /*  Be prepared to get other numbers as well. In this case you */
  294.     /*  should assume IDCID_MISC. */
  295.  
  296. /* ------------------------------------------------------------------------ *
  297. **  Error codes
  298. */
  299. /* Positive error codes are DOS errors! */
  300. #define IDERR_OKAY      (0)     /* No error */
  301. #define IDERR_NOLENGTH  (-1)    /* Buffer length is 0 ?? */
  302. #define IDERR_BADID     (-2)    /* Missing or bad board ID */
  303. #define IDERR_NOMEM     (-3)    /* Not enough memory */
  304. #define IDERR_NOFD      (-4)    /* No fitting FD file found */
  305. #define IDERR_OFFSET    (-5)    /* Function offset not found */
  306. #define IDERR_DONE      (-6)    /* Done with traversing (not an error) */
  307. #define IDERR_SECONDARY (-7)    /* Secondary expansion board (not an error) */
  308.  
  309. /* ------------------------------------------------------------------------ *
  310. **  That's all...
  311. */
  312.  
  313. #endif
  314.  
  315.